#ifndef _PCODE_H
#define _PCODE_H

#define NOP       0x00
#define PUSHC     0x01
#define PUSHN     0x05
#define POPF      0x06
#define POPM      0x07
#define POPQF     0x08
#define PUSHA     0x09
#define PUSHF     0x0A
#define PUSHM     0x0B
#define PUSHMR    0x0C
#define PUSHP     0x0D
#define PUSHQF    0x0E
#define PUSHV     0x0F
#define SFRAME    0x10
#define SINIT     0x11
#define MESSAGE   0x12
#define SYMF      0x13
#define BEGIN_SEQ 0x19
#define JDBG      0x1A
#define JF        0x1B
#define JFPT      0x1C
#define JISW      0x1D
#define JMP       0x1E
#define JNEI      0x1F
#define JT        0x20
#define JTPF      0x21
#define PUSHBL    0x23
#define ARRAYATI  0x24
#define ARRAYPUTI 0x25
#define CALL      0x26
#define DO        0x27
#define FRAME     0x28
#define FUNC      0x29
#define LINE      0x2A
#define MAKEA     0x2B
#define MAKELA    0x2C
#define PARAMS    0x2D
#define POPFL     0x2E
#define POPL      0x2F
#define POPS      0x30
#define PRIVATES  0x31
#define PUBLICS   0x33
#define PUSHFL    0x34
#define PUSHFLR   0x35
#define PUSHI     0x36
#define PUSHL     0x37
#define PUSHLR    0x38
#define PUSHS     0x39
#define PUSHSR    0x3A
#define PUSHW     0x3B
#define SEND      0x3C
#define XBLOCK    0x3D
#define MPOPF     0x4A
#define MPOPM     0x4B
#define MPOPQF    0x4C
#define MPUSHA    0x4D
#define MPUSHF    0x4E
#define MPUSHM    0x4F
#define MPUSHMR   0x50
#define MPUSHP    0x51
#define MPUSHQF   0x52
#define MPUSHV    0x53
#define MSYMBOL   0x54
#define MSYMF     0x55
#define ABS       0x56
#define _AND      0x57
#define ARRAYAT   0x58
#define ARRAYPUT  0x59
#define BREAK     0x5A
#define _DEC      0x5B
#define DIVIDE    0x5C
#define DOOP      0x5D
#define EEQ       0x5E
#define ENDBLOCK  0x5F
#define ENDPROC   0x60
#define END_SEQ   0x61
#define _EQ       0x62
#define EVENTS    0x63
#define _FALSE    0x64
#define _GE       0x65
#define GT        0x66
#define _INC      0x67
#define _LE       0x68
#define LT        0x69
#define MINUS     0x6A
#define MULT      0x6B
#define _NE       0x6C
#define NEGATE    0x6E
#define NOP2      0x6F
#define _NOT      0x70
#define NUL       0x71
#define ONE       0x72
#define _OR       0x73
#define _PCOUNT   0x74
#define PLUS      0x75
#define POP       0x76
#define PUSHRV    0x77
#define _QSELF    0x78
#define SAVERET   0x79
#define _TRUE     0x7A
#define UNDEF     0x7B
#define ZERO      0x7C
#define ZZBLOCK   0x7D
#define AXPRIN    0x7E
#define AXPROUT   0x7F
#define BOF       0x80
#define _DELETED  0x81
// #define EOF       0x82
#define FCOUNT    0x83
#define FIELDNAME 0x84
#define FLOCK     0x85
#define FOUND     0x86
#define FSELECT0  0x87
#define FSELECT1  0x88
#define LASTREC   0x89
#define LOCK      0x8A
#define RECNO     0x8B
#define BNAMES    0x8C
#define _LNAMES   0x8D
#define SNAMES    0x8E
#define SRCNAME   0x8F
#define TYPE      0x90
#define WAVE      0x91
#define WAVEA     0x92
#define WAVEF     0x93
#define WAVEL     0x94
#define WAVEP     0x95
#define WAVEPOP   0x96
#define WAVEPOPF  0x97
#define WAVEPOPQ  0x98
#define WAVEQ     0x99
#define WSYMBOL   0x9A
#define _AADD     0x9B
#define ASC       0x9C
#define AT        0x9D
#define CDOW      0x9E
#define CHR       0x9F
#define CMONTH    0xA0
#define CTOD      0xA1
#define _DATE     0xA2
#define DAY       0xA3
#define DOW       0xA4
#define DTOC      0xA5
#define DTOS      0xA6
#define _EMPTY     0xA7
#define QEXP      0xA8
#define EXPON     0xA9
#define INSTR     0xAA
#define INT       0xAB
#define LEFT      0xAC
#define _LEN      0xAD
#define LOGQ      0xAE
#define LOWER     0xAF
#define LTRIM     0xB0
#define MAX       0xB1
#define MIN       0xB2
#define MODULUS   0xB3
#define MONTH     0xB4
#define REPLICATE 0xB5
#define ROUND     0xB6
#define SECONDS   0xB7
#define SPACE     0xB8
#define QSQRT     0xB9
#define STR1      0xBA
#define STR2      0xBB
#define STR3      0xBC
#define SUB2      0xBD
#define SUB3      0xBE
#define _TIME     0xBF
#define TRIM      0xC0
#define UPPER     0xC1
#define VAL       0xC2
#define _VALTYPE  0xC3
#define _WORD     0xC4
#define YEAR      0xC5
#define TRANS     0xC6
#define COL       0xC7
#define DEVPOS    0xC8
#define INKEY0    0xC9
#define INKEY1    0xCA
#define PCOL      0xCB
#define PROW      0xCC
#define ROW       0xCD
#define SETPOS    0xCE
#define SETPOSBS  0xCF

#define FUNCPTR   0xD0    // New feature: functions by reference !!!

#endif
